一個「訊息事件」物件包含這些資料欄位(屬性):
line-bot-sdk程式庫內有linebot.models套件
裡面也有很多不同的模組可以使用
訊息事件的模組為MessageEvent,能夠處理文字類型
接收類
TextMessage:文字訊息
StickerMessage:貼圖訊息
ImageMessage:影像訊息
LocationMessage :地點(GPS 座標)訊息
回覆類
TextSendMessage:包裝文字訊息
StickerSendMessage:包裝貼圖訊息
ImageSendMessage:包裝影像訊息
LocationSendMessage:包裝地點(GPS 座標)訊
因此想接收和回覆「文字」訊息的程式開頭需引用以上模組
例
from linebot.models import MessageEvent, TextMessage, TextSendMessage
回覆訊息的語法:
line_bot_api.reply_message(回覆令牌, 訊息)
例
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
txt=event.message.text <-收到的訊息文字
line_bot_api.reply_message(event.reply_token, TextSendMessage (text=txt)
)
回覆貼圖:
Line聊天機器人只能使用四組官方預設的貼圖包,而每一張貼圖都有唯一的貼圖包編號和貼圖編號
例
{
"message":{"id":"訊息識別碼",
"packageId": "1", "stickerId": "1", "type": "sticker"},
"'replyToken":"回覆令牌代碼",
"'source":{"type":"user", "userId":"使用者唯一識別碼"},
"timestamp":時間戳記,
"type": "message"
}
回覆貼圖語法:
StickerSendMessage(package_id=貼圖包編號, sticker_id=貼圖編號)
接收貼圖並回覆相同貼圖:
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage, StickerMessage, StickerSendMessage
)
@handler.add(MessageEvent, message=StickerMessage)
def handle_sticker_message(event):
pid=event.message.package_id <-收到的貼圖包編號
sid=event.message.sticker_id <-貼圖編號
line_bot_api.reply_message(
event.reply_token,
StickerSendMessage(package_id=pid, sticker_id=sid)
)